package eps.einfachesFormular;

/**
 * Diese Klasse implementiert eine simple Checkbox, die Ja/Nein Benutzereingaben
 * entgegennehmen kann.
 * Auf die Ausrichtung im Formularfenster kann kein Einfluss genommen werden. 
 * Es wird eine ganze Zeile in Fensterbreite dargestellt, die 
 * angewaehlt werden kann. Die angezeigte Zeile wird nach dem letzten 
 * angezeigten Element im Formularfenster plaziert.
 * 
 * Technische Details werden in dieser Umsetzung verborgen.
 * Das einzige Attribut internesKaestchen eignet sich (wie der Name intern
 * andeuten soll) nicht zum Inspizieren.
 * 
 * @author Ute Heuer, Universitaet Passau 
 * @version 1
 */
public class Kontrollkaestchen {
    private eps.fortgeschrittenesFormular.Kontrollkaestchen internesKaestchen;

    public Kontrollkaestchen() {
        internesKaestchen = new eps.fortgeschrittenesFormular.Kontrollkaestchen();
     }
    
    /**
     * Legt das Element ans Ende des Formularfensters, wenn es vorher
     * nicht angezeigt wurde.
     */
    public void anzeigen() {
        internesKaestchen.anzeigen();
    }
    
    /**
     * Entfernt das Element vom Formularfenster
     */
    public void verstecken() {
        internesKaestchen.verstecken();
    }
    
    /**
     * Der Text rechts vom Kaestchen kann gesetzt werden.
     */
    public void beschriftungSetzen(String neueBeschriftung) {
        internesKaestchen.beschriftungSetzen(neueBeschriftung);
    }
    
    /** 
     * Prueft, ob das Kaestchen momentan ausgewaehlt ist. Wenn ja wird
     * true zurueckgegeben, sonst false.
     */
    public boolean istAusgewaehlt() {
        return internesKaestchen.istAusgewaehlt();
    }
     
    /** 
     * Setzt eine Art Vorgabe:
     * Der Aufruf auswaehlen(true) setzt eine Markierung in das Kaestchen.
     * Der Aufruf auswaehlen(false) hebt die Auswahl auf.
     * Natuerlich kann die Auswahl in der Anwendung 
     * dann vom Benutzer per Mausklick geaendert werden.
     */    
    public void auswaehlen(boolean ausgewaehlt) {
        internesKaestchen.auswaehlen(ausgewaehlt);
    }

    /**
     * Gesperrte Kontrollkaestchen koennen keine neuen 
     * Eingaben via Maus im Formularfenster entgegennehmen. 
     * In den meisten Umgebungen wird das dem Nutzer auch optisch
     * angezeigt. Alle Dienste der Klasse Kontrollkaestchen
     * koennen jedoch trotzdem sinnvoll genutzt werden.
     * 
     * Der Aufruf sperren(true) sperrt das Eingabefeld
     * Der Aufruf sperren(false) hebt eine Sperrung auf.
     */    
    public void sperren(boolean gesperrt) {
        internesKaestchen.sperren(gesperrt);
    }
}
